import { Card } from "antd";
import "../../../common/common.css";

export const PanelLanguageData = [
    {
        key: "1",
        label: "强制转换",
        children: (
            <div className="centerTextLeft lodashPanel lodashWidth">
                <Card title="castArray" className="lodashCard">
                    <p>
                        _.castArray(value) <br />
                        <b>【 强制转换数组 】</b>
                    </p>
                    <p>如果 value 不是数组, 那么强制转为数组。</p>
                    <p>返回array</p>
                </Card>
                <Card title="toArray" className="lodashCard">
                    <p>
                        _.toArray(value) <br />
                        <b>【 转换目标为数组 】</b>
                    </p>
                    <p>转换 value 为一个数组。</p>
                    <p>返回array</p>
                </Card>
                <Card title="toFinite" className="lodashCard">
                    <p>
                        _.toFinite(value) <br />
                        <b>【 转换 value 为一个有限数字 】</b>
                    </p>
                    <p>转换 value 为一个有限数字。</p>
                    <p>返回number</p>
                </Card>
                <Card title="toInteger" className="lodashCard">
                    <p>
                        _.toInteger(value) <br />
                        <b>【 转换 value 为一个整数 】</b>
                    </p>
                    <p>转换 value 为一个整数。</p>
                    <p>返回number</p>
                </Card>
                <Card title="toLength" className="lodashCard">
                    <p>
                        _.toLength(value) <br />
                        <b>【 获取类数组对象的长度 】</b>
                    </p>
                    <p> 转换 value 为用作类数组对象的长度整数。</p>
                    <p>返回number</p>
                </Card>
                <Card title="toNumber" className="lodashCard">
                    <p>
                        _.toNumber(value) <br />
                        <b>【 转换获取数字 】</b>
                    </p>
                    <p>转换 value 为一个数字。</p>
                    <p>返回number</p>
                </Card>
                <Card title="toPlainObject" className="lodashCard">
                    <p>
                        _.toPlainObject(value) <br />
                        <b>【 转换 value 为普通对象 】</b>
                    </p>
                    <p>转换 value 为普通对象。 包括继承的可枚举属性。</p>
                    <p>返回object</p>
                </Card>
                <Card title="toSafeInteger" className="lodashCard">
                    <p>
                        _.toSafeInteger(value) <br />
                        <b>【 转安全整数 】</b>
                    </p>
                    <p>转换 value 为安全整数。 安全整数可以用于比较和准确的表示。</p>
                    <p>返回number</p>
                </Card>
                <Card title="toString" className="lodashCard">
                    <p>
                        _.toString(value) <br />
                        <b>【 转字符串 】</b>
                    </p>
                    <p>转换 value 为字符串。 null 和 undefined 将返回空字符串。-0 将被转换为字符串"-0"。</p>
                    <p>返回string</p>
                </Card>
            </div>
        ),
    },
    {
        key: "2",
        label: "数组拷贝",
        children: (
            <div className="centerTextLeft lodashPanel lodashWidth">
                <Card title="clone" className="lodashCard">
                    <p>
                        _.clone(value) <br />
                        <b>【 浅拷贝数组 】</b>
                    </p>
                    <p>
                        创建一个 value 的浅拷贝。 注意: 这个方法参考自structured clone algorithm 以及支持 arrays、array buffers、 booleans、 date objects、maps、 numbers， Object 对象, regexes, sets, strings, symbols, 以及 typed arrays。
                        arguments对象的可枚举属性会拷贝为普通对象。 一些不可拷贝的对象，例如error objects、functions, DOM nodes, 以及 WeakMaps 会返回空对象。
                    </p>
                    <p>返回拷贝后的结果</p>
                </Card>
                <Card title="cloneDeep" className="lodashCard">
                    <p>
                        _.cloneDeep(value) <br />
                        <b>【 深拷贝数组 】</b>
                    </p>
                    <p>这个方法类似_.clone，除了它会递归拷贝 value。（注：也叫深拷贝）。</p>
                    <p>返回拷贝后的结果</p>
                </Card>
                <Card title="cloneDeepWith & cloneWith" className="lodashCard">
                    <p>深拷贝数组【没理解】</p>
                </Card>
            </div>
        ),
    },
    {
        key: "3",
        label: "检查对象属性是否符合预期",
        children: (
            <div className="centerTextLeft lodashPanel lodashWidth">
                <Card title="conformsTo" className="lodashCard">
                    <p>
                        _.conformsTo(object, source) <br />
                        <b>【 检查对象的属性是否符合预期 】</b>
                    </p>
                    <p>
                        通过调用断言source的属性与 object 的相应属性值，检查 object是否符合 source。当source偏应用时，这种方法和_.conforms函数是等价的。 注意:
                        当source为偏应用时，这种方法等价于_.conforms。（注：关于偏应用大家可以自己到google上搜索一下）。
                    </p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isMatch" className="lodashCard">
                    <p>
                        _.isMatch(object, source) <br />
                        <b>【 比较 object 是否含有和 source 完全相等的属性值 】</b>
                    </p>
                    <p>
                        执行一个深度比较，来确定 object 是否含有和 source 完全相等的属性值。注意:
                        当source为偏应用时，这种方法等价于_.matches。（注：关于偏应用大家可以自己到google上搜索一下）。偏应用比较匹配空数组和空对象source值分别针对任何数组或对象的价值。在_.isEqual中查看支持的值比较列表。
                    </p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isMatchWith" className="lodashCard">
                    <p>
                        _.isMatchWith(object, source, [customizer]) <br />
                        <b>【 支持定制比较 object 是否含有和 source 完全相等的属性值 】</b>
                    </p>
                    <p>这个方法类似_.isMatch。 除了它接受一个 customizer 定制比较的值。 如果 customizer 返回 undefined 将会比较处理方法代替。 customizer 会传入5个参数：(objValue, srcValue, index|key, object, source)。</p>
                    <p>返回boolean值</p>
                </Card>
            </div>
        ),
    },
    {
        key: "4",
        label: "两者相比",
        children: (
            <div className="centerTextLeft lodashPanel lodashWidth">
                <Card title="eq" className="lodashCard">
                    <p>
                        _.eq(value, other) <br />
                        <b>【 比较两者是否相等 】</b>
                    </p>
                    <p>执行SameValueZero 比较两者的值，来确定它们是否相等。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="gt" className="lodashCard">
                    <p>
                        _.gt(value, other) <br />
                        <b>【 比较是否大于，返回Boolean值 】</b>
                    </p>
                    <p>检查 value是否大于 other。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="gte" className="lodashCard">
                    <p>
                        _.gte(value, other) <br />
                        <b>【 比较是否大于或者等于，返回Boolean值 】</b>
                    </p>
                    <p>检查 value是否大于或者等于 other。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isEqual" className="lodashCard">
                    <p>
                        _.isEqual(value, other) <br />
                        <b>【 判断两者是否相等 】</b>
                    </p>
                    <p>
                        执行深比较来确定两者的值是否相等。 注意: 这个方法支持比较 arrays, array buffers, booleans, date objects, error objects, maps, numbers, Object objects, regexes, sets, strings, symbols, 以及 typed arrays. Object
                        对象值比较自身的属性，不包括继承的和可枚举的属性。 不支持函数和DOM节点比较。
                    </p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isEqualWith" className="lodashCard">
                    <p>
                        _.isEqualWith(value, other, [customizer]) <br />
                        <b>【 定制化比较两个值 】</b>
                    </p>
                    <p>这个方法类似_.isEqual。 除了它接受一个 customizer 用来定制比较值。 如果 customizer 返回 undefined 将会比较处理方法代替。 customizer 会传入6个参数：(objValue, othValue [, index|key, object, other, stack])</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="lt" className="lodashCard">
                    <p>
                        _.lt(value, other) <br />
                        <b>【 检查是否小于目标数值，返回boolean值 】</b>
                    </p>
                    <p>检查 value 是否小于 other。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="lte" className="lodashCard">
                    <p>
                        _.lte(value, other) <br />
                        <b>【 检查是否小于或者等于目标数值，返回boolean值 】</b>
                    </p>
                    <p>检查 value 是否小于等于 other。</p>
                    <p>返回boolean值</p>
                </Card>
            </div>
        ),
    },
    {
        key: "5",
        label: "判断是否是xxx对象",
        children: (
            <div className="centerTextLeft lodashPanel lodashWidth">
                <Card title="isArguments" className="lodashCard">
                    <p>
                        _.isArguments(value) <br />
                        <b>【 判断是否是类 arguments 对象 】</b>
                    </p>
                    <p>检查 value 是否是一个类 arguments 对象。【arguments对象是所有（非箭头）函数中都可用的局部变量。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments】</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isArray" className="lodashCard">
                    <p>
                        _.isArray(value) <br />
                        <b>【 判断是否是数组 】</b>
                    </p>
                    <p>检查 value 是否是 Array 类对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isArrayBuffer" className="lodashCard">
                    <p>
                        _.isArrayBuffer(value) <br />
                        <b>【 判断是否是 ArrayBuffer 对象 】</b>
                    </p>
                    <p>检查 value 是否是 ArrayBuffer 对象。ArrayBuffer 对象用来表示通用的原始二进制数据缓冲区。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isArrayLike" className="lodashCard">
                    <p>
                        _.isArrayLike(value) <br />
                        <b>【 判断是否是类数组 】</b>
                    </p>
                    <p>检查 value 是否是类数组。 如果一个值被认为是类数组，那么它不是一个函数，并且value.length是个整数，大于等于 0，小于或等于 Number.MAX_SAFE_INTEGER。【类数组与数组区别参照https://juejin.cn/post/7017997007352496136】</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isArrayLikeObject" className="lodashCard">
                    <p>
                        _.isArrayLikeObject(value) <br />
                        <b>【 判断是否是类数组对象 】</b>
                    </p>
                    <p>这个方法类似_.isArrayLike。除了它还检查value是否是个对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isBoolean" className="lodashCard">
                    <p>
                        _.isBoolean(value) <br />
                        <b>【 判断是否是boolean类型 】</b>
                    </p>
                    <p>检查 value 是否是原始 boolean 类型或者对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isBuffer" className="lodashCard">
                    <p>
                        _.isBuffer(value) <br />
                        <b>【 判断是否是buffer 】</b>
                    </p>
                    <p>检查 value 是否是个 buffer。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isDate" className="lodashCard">
                    <p>
                        _.isDate(value) <br />
                        <b>【 判断是否是 Date 对象 】</b>
                    </p>
                    <p>检查 value 是否是 Date 对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isElement" className="lodashCard">
                    <p>
                        _.isElement(value) <br />
                        <b>【 判断是否是dom元素 】</b>
                    </p>
                    <p>检查 value 是否是可能是 DOM 元素。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isEmpty" className="lodashCard">
                    <p>
                        _.isEmpty(value) <br />
                        <b>【 判断是否是空对象 】</b>
                    </p>
                    <p>
                        检查 value 是否为一个空对象，集合，映射或者set。 判断的依据是除非是有枚举属性的对象，length 大于 0 的 arguments object, array, string 或类jquery选择器。 对象如果被认为为空，那么他们没有自己的可枚举属性的对象。
                        类数组值，比如arguments对象，array，buffer，string或者类jQuery集合的length 为 0，被认为是空。类似的，map（映射）和set 的size 为 0，被认为是空。
                    </p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isError" className="lodashCard">
                    <p>
                        _.isError(value) <br />
                        <b>【 判断是否是错误对象 】</b>
                    </p>
                    <p>检查 value 是否是 Error, EvalError, RangeError, ReferenceError,SyntaxError, TypeError, 或者 URIError对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isFunction" className="lodashCard">
                    <p>
                        _.isFunction(value) <br />
                        <b>【 判断是否是函数 】</b>
                    </p>
                    <p>检查 value 是否是 Function 对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isMap" className="lodashCard">
                    <p>
                        _.isMap(value) <br />
                        <b>【 判断是否是Map对象 】</b>
                    </p>
                    <p>检查 value 是否为一个 Map 对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isNative" className="lodashCard">
                    <p>
                        _.isNative(value) <br />
                        <b>【 判断是否是原生函数 】</b>
                    </p>
                    <p>
                        检查 value 是否是一个原生函数。注意： 这种方法不能可靠地检测在core-js包中存在的本地函数，因为 core-js 规避这种检测。尽管有多个请求，core-js
                        维护者已经明确表态：任何试图修复检测将受阻。这样一来，我们别无选择，只能抛出一个错误。不幸的是，这也影响其他的包，比如依赖于 core-js的babel-polyfill。
                    </p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isObject" className="lodashCard">
                    <p>
                        _.isObject(value) <br />
                        <b>【 判断是否是对象 】</b>
                    </p>
                    <p>检查 value 是否为 Object 的language type。 (例如： arrays, functions, objects, regexes,new Number(0), 以及 new String(''))</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isObjectLike" className="lodashCard">
                    <p>
                        _.isObjectLike(value) <br />
                        <b>【 判断是否是类对象 】</b>
                    </p>
                    <p>检查 value 是否是 类对象。 如果一个值是类对象，那么它不应该是 null，而且 typeof 后的结果是 "object"。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isPlainObject" className="lodashCard">
                    <p>
                        _.isPlainObject(value) <br />
                        <b>【 判断是否是普通对象 】</b>
                    </p>
                    <p>检查 value 是否是普通对象。 也就是说该对象由 Object 构造函数创建，或者 [[Prototype]] 为 null 。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isRegExp" className="lodashCard">
                    <p>
                        _.isRegExp(value) <br />
                        <b>【 判断是否是正则表达式 】</b>
                    </p>
                    <p>检查 value 是否为RegExp对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isSet" className="lodashCard">
                    <p>
                        _.isSet(value) <br />
                        <b>【 判断是否是一个Set对象 】</b>
                    </p>
                    <p>检查 value 是否是一个Set对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isString" className="lodashCard">
                    <p>
                        _.isString(value) <br />
                        <b>【 判断是否是一个字符串 】</b>
                    </p>
                    <p>检查 value 是否是原始字符串String或者对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isSymbol" className="lodashCard">
                    <p>
                        _.isSymbol(value) <br />
                        <b>【 判断是否是一个symbol 】</b>
                    </p>
                    <p>检查 value 是否是原始 Symbol 或者对象。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isTypedArray" className="lodashCard">
                    <p>
                        _.isTypedArray(value) <br />
                        <b>【 判断是否是TypedArray-二进制数据缓冲类数组 】</b>
                    </p>
                    <p>
                        检查 value 是否是 TypedArray 。 【 TypedArray基本介绍 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray】 【 ArrayBuffer、TypedArray、DataView 的对比和使用
                        https://juejin.cn/post/7005810137491308580#heading-7】
                    </p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isWeakMap" className="lodashCard">
                    <p>
                        _.isWeakMap(value) <br />
                        <b>【 判断是否是 WeakMap 对象——WeakMap 是键/值对的集合，其键必须是对象或非注册符号，其值为任意 JavaScript 类型 】</b>
                    </p>
                    <p>检查 value 是否是 WeakMap 对象。【WeakMap介绍：https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/WeakMap】</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isWeakSet" className="lodashCard">
                    <p>
                        _.isWeakSet(value) <br />
                        <b>【 判断是否是 WeakSet 对象 】</b>
                    </p>
                    <p>value (*): 要检查的值。</p>
                    <p>返回boolean值</p>
                </Card>
            </div>
        ),
    },
    {
        key: "6",
        label: "判断是否符合条件",
        children: (
            <div className="centerTextLeft lodashPanel lodashWidth">
                <Card title="isFinite" className="lodashCard">
                    <p>
                        _.isFinite(value) <br />
                        <b>【 判断是否是有限数值 】</b>
                    </p>
                    <p>检查 value 是否是原始有限数值。Number.MAX_VALUE 是JavaScript中最大的浮点数，尝试使用比更大的数字Number.MAX_VALUE，JavaScript将该数字转换为Infinity。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isInteger" className="lodashCard">
                    <p>
                        _.isInteger(value) <br />
                        <b>【 判断是否是整数 】</b>
                    </p>
                    <p>检查 value 是否为一个整数。注意: 这个方法基于Number.isInteger.</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isNumber" className="lodashCard">
                    <p>
                        _.isNumber(value) <br />
                        <b>【 判断是否是数值 】</b>
                    </p>
                    <p>检查 value 是否是原始Number数值型 或者 对象。 注意: 要排除 Infinity, -Infinity, 以及 NaN 数值类型，用_.isFinite 方法。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isSafeInteger" className="lodashCard">
                    <p>
                        _.isSafeInteger(value) <br />
                        <b>【 判断是否是一个安全整数 】</b>
                    </p>
                    <p>检查 value 是否是一个安全整数。 一个安全整数应该是符合 IEEE-754 标准的非双精度浮点数。注意: 这个方法基于Number.isSafeInteger.</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isNaN" className="lodashCard">
                    <p>
                        _.isNaN(value) <br />
                        <b>【 判断是否是NaN 】</b>
                    </p>
                    <p>检查 value 是否是 NaN 。注意: 这个方法基于Number.isNaN，和全局的isNaN 不同之处在于，全局的isNaN对 于 undefined 和其他非数字的值返回 true。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isNil" className="lodashCard">
                    <p>
                        _.isNil(value) <br />
                        <b>【 判断是否是 null 或 undefined 】</b>
                    </p>
                    <p>检查 value 是否是 null 或者 undefined。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isNull" className="lodashCard">
                    <p>
                        _.isNull(value) <br />
                        <b>【 判断是否是null 】</b>
                    </p>
                    <p>检查 value 是否是 null。</p>
                    <p>返回boolean值</p>
                </Card>
                <Card title="isUndefined" className="lodashCard">
                    <p>
                        _.isUndefined(value) <br />
                        <b>【 判断是否是 undefined 】</b>
                    </p>
                    <p>检查 value 是否是 undefined</p>
                    <p>返回boolean值</p>
                </Card>
            </div>
        ),
    },
];